上篇筆記我們已經可以部署應用程式到 Local Kubernetes 叢集, 接下來我將介紹與 Public Could 整合的例子, 網路上有很多 AWS 與 GCP 的 Kubernetes 應用, 因為筆者已經有使用微軟的 Azure 服務, 因此本篇將介紹 Microsoft Azure Kuberetes Service (AKS) 以及相關的 Azure Container Registry (ACR) 與 Azure Container Instance (ACI) 基本概念.
微軟的 Azure Kubernetes Service 以下簡稱 AKS , 提供簡單的部署, 管理與操作介面, 具有以下的幾個特點:
這邊要特別說明, AKS 管理控制平台是由微軟託管的, 訂閱者不需要設定 Master nodes, 訂閱的使用者透過 Kubernetes API endpoint, 使用命令(Azure Cli - az aks
) 來管理 AKS.
使用 AKS 配合 Azure 服務 Azure DevSpaces, Helm, Azure DevOps Project, ACR, ACI, Azure Monitor 提供從開發環境到生產環境的 DevOps 完整方案.
以下是 AKS 的架構, 是不是跟 Kubernetes 架構幾乎一樣呢?
資料來源: https://social.technet.microsoft.com/wiki/contents/articles/51499.azure-kubernetes-service-aks-getting-started.aspx
Azure Container Registry (ACR) 是可以用來儲存所有容器部署類型的映像, 使用 Docker Registry 相容的命令管理與建立 Container Registry, 用以儲存管理私人的 docker container image.
主要提供整合的協調機制來集中管理容器化的應用程式, 包括 Kubernetes, Docker Swarm. 一方面透過 Azure 服務, 可以自動化建置, 執行與擴充應用程式.
此外, 透過 Jenkins 或 Azure DevOps 服務可以做為發佈到 ACR 的持續整合的部署流程的一部分
ACR 包括幾個主要的概念:
azurecr.io
Azure 容器執行個體 Azure Container Instance (ACI), 是不需要管理虛擬機器而提供容器應用程式執行的服務, 具有快速啟動的優點, 並且提供公用 IP 以及完整網域名稱 (FQDN), 可以直接由網際網路存取應用程式. 此外 ACI 具有應用程式相依性隔離和資源控管, 等同於虛擬機器的安全性管理.
如下圖, ACR 提供容器的儲存, 並且可以將 Image 取出到 ACI 中.
資料來源: https://stackify.com/azure-container-instances/
ACR 與 ACI 在 Azure Kubernetes Service (AKS) 的有密切的合作關係, Container Registry 提供 Images Repository, Pod 所執行的個體便是 ACI.
資料來源: https://social.technet.microsoft.com/wiki/contents/articles/51499.azure-kubernetes-service-aks-getting-started.aspx